import request from '@/utils/request'

// ========== 认证管理 ==========
// 管理员登录
export function adminLogin(data) {
  return request({
    url: '/api/auth/web-login',
    method: 'post',
    data
  })
}

// 获取当前用户信息
export function getUserInfo() {
  return request({
    url: '/api/auth/userinfo',
    method: 'get'
  })
}

// 更新个人资料
export function updateProfile(data) {
  return request({
    url: '/api/auth/userinfo',
    method: 'put',
    data
  })
}

// 修改密码
export function changePassword(data) {
  return request({
    url: '/api/auth/password',
    method: 'put',
    data
  })
}

// 登出
export function logout() {
  return request({
    url: '/api/auth/logout',
    method: 'post'
  })
}

// ========== 用户管理 ==========
// 获取用户列表
export function getUserList(params) {
  return request({
    url: '/api/admin/users',
    method: 'get',
    params
  })
}

// 创建用户
export function createUser(data) {
  return request({
    url: '/api/admin/users',
    method: 'post',
    data
  })
}

// 更新用户信息
export function updateUser(id, data) {
  return request({
    url: `/api/admin/users/${id}`,
    method: 'put',
    data
  })
}

// 删除用户
export function deleteUser(id) {
  return request({
    url: `/api/admin/users/${id}`,
    method: 'delete'
  })
}

// 批量删除用户
export function batchDeleteUsers(userIds) {
  return request({
    url: '/api/admin/users/batch',
    method: 'delete',
    data: userIds
  })
}

// 根据ID获取用户信息
export function getUserById(id) {
  return request({
    url: `/api/admin/users/${id}`,
    method: 'get'
  })
}

// 更新用户状态
export function updateUserStatus(id, status) {
  return request({
    url: `/api/admin/users/${id}/status`,
    method: 'put',
    params: { status }
  })
}

// 批量更新用户状态
export function batchUpdateUserStatus(userIds, status) {
  return request({
    url: '/api/admin/users/batch/status',
    method: 'put',
    data: userIds,
    params: { status }
  })
}

// 重置用户密码
export function resetUserPassword(id, newPassword) {
  return request({
    url: `/api/admin/users/${id}/password/reset`,
    method: 'put',
    data: { newPassword }
  })
}

// 检查用户名是否存在
export function checkNickname(nickname) {
  return request({
    url: '/api/admin/users/check/nickname',
    method: 'get',
    params: { nickname }
  })
}

// 检查手机号是否存在
export function checkPhone(phone) {
  return request({
    url: '/api/admin/users/check/phone',
    method: 'get',
    params: { phone }
  })
}

// 检查邮箱是否存在
export function checkEmail(email) {
  return request({
    url: '/api/admin/users/check/email',
    method: 'get',
    params: { email }
  })
}

// 获取用户统计信息
export function getUserStats() {
  return request({
    url: '/api/admin/users/stats',
    method: 'get'
  })
}

// ========== 剪纸文化管理 ==========
// 获取文化列表
export function getCultureList(params) {
  return request({
    url: '/api/culture/list',
    method: 'get',
    params
  })
}

// 获取文化详情
export function getCultureDetail(id) {
  return request({
    url: `/api/culture/${id}`,
    method: 'get'
  })
}

// ========== 教程管理 ==========
// 获取教程列表
export function getTutorialList(params) {
  return request({
    url: '/api/tutorial/list',
    method: 'get',
    params
  })
}

// 获取教程详情
export function getTutorialDetail(id) {
  return request({
    url: `/api/tutorial/${id}`,
    method: 'get'
  })
}

// ========== 统计数据 ==========
// 获取平台总体统计信息
export function getOverviewStats() {
  return request({
    url: '/api/statistics/overview',
    method: 'get'
  })
}

// 获取用户相关统计信息
export function getUserStatistics() {
  return request({
    url: '/api/statistics/user',
    method: 'get'
  })
}

// 获取内容相关统计信息
export function getContentStats() {
  return request({
    url: '/api/statistics/content',
    method: 'get'
  })
}

// 获取学习相关统计信息
export function getStudyStats() {
  return request({
    url: '/api/statistics/study',
    method: 'get'
  })
}

// ========== 文化内容 CRUD 操作 ==========
// 创建文化内容
export function createCulture(data) {
  return request({
    url: '/api/culture',
    method: 'post',
    data
  })
}

// 更新文化内容
export function updateCulture(id, data) {
  return request({
    url: `/api/culture/${id}`,
    method: 'put',
    data
  })
}

// 删除文化内容
export function deleteCulture(id) {
  return request({
    url: `/api/culture/${id}`,
    method: 'delete'
  })
}

// 获取文化分类统计
export function getCultureCategoryStats() {
  return request({
    url: '/api/culture/category-stats',
    method: 'get'
  })
}

// 获取用户增长趋势
export function getUserGrowthTrend(period = 'week') {
  return request({
    url: '/api/statistics/user-growth',
    method: 'get',
    params: { period }
  })
}

// ========== 教程 CRUD 操作 ==========
// 创建教程
export function createTutorial(data) {
  return request({
    url: '/api/tutorial',
    method: 'post',
    data
  })
}

// 更新教程
export function updateTutorial(id, data) {
  return request({
    url: `/api/tutorial/${id}`,
    method: 'put',
    data
  })
}

// 删除教程
export function deleteTutorial(id) {
  return request({
    url: `/api/tutorial/${id}`,
    method: 'delete'
  })
}

// ========== 新闻管理 ==========
// 获取新闻列表
export function getNewsList(params) {
  return request({
    url: '/api/news/list',
    method: 'get',
    params
  })
}

// 获取新闻详情
export function getNewsDetail(id) {
  return request({
    url: `/api/news/${id}`,
    method: 'get'
  })
}

// 创建新闻
export function createNews(data) {
  return request({
    url: '/api/news',
    method: 'post',
    data
  })
}

// 更新新闻
export function updateNews(id, data) {
  return request({
    url: `/api/news/${id}`,
    method: 'put',
    data
  })
}

// 删除新闻
export function deleteNews(id) {
  return request({
    url: `/api/news/${id}`,
    method: 'delete'
  })
}

// ========== 横幅管理 ==========
// 获取横幅列表
export function getBannerList(params) {
  return request({
    url: '/api/banner/list',
    method: 'get',
    params
  })
}

// 获取横幅详情
export function getBannerDetail(id) {
  return request({
    url: `/api/banner/${id}`,
    method: 'get'
  })
}

// 创建横幅
export function createBanner(data) {
  return request({
    url: '/api/banner',
    method: 'post',
    data
  })
}

// 更新横幅
export function updateBanner(id, data) {
  return request({
    url: `/api/banner/${id}`,
    method: 'put',
    data
  })
}

// 删除横幅
export function deleteBanner(id) {
  return request({
    url: `/api/banner/${id}`,
    method: 'delete'
  })
}